A device that reads information from, or writes information to, a smart card typically does so using a smart card reader. The smart card reader may be connected, e.g., through a directly wired connection or a wireless connection, to the device. Specific software, called a “driver”, is generally executed by the device to facilitate reading from, and writing to, the memory component of the smart card using the smart card reader. The driver includes an application programming interface (API) that allows other programs to issue requests and commands that will be understood by the driver. An API generally comprises a source code interface that a computer system or program library provides in order to support requests for services to be made of it by a computer program.
When the connection between the device and the smart card reader is wireless, for example, using the Bluetooth™ wireless communication protocol, some complications arise. In a typical transaction, the device transmits, over the wireless connection, a request to the smart card reader and the smart card reader forwards the request to the smart card. The smart card then responds to the request with a response and the smart card reader forwards the response, over the wireless connection, to the device. Unfortunately, the speed (e.g., measured in bits per second) generally available for the wireless connection limits the speed with which the device can make use of the smart card, e.g., to authenticate a user of the device. The smart card driver is located on the device and has knowledge of how to talk to the smart card which is located in the smart card reader. There are many cases where, in order to perform an operation, there is a requirement for several transactions.